// 小程序更新检测
export function mpUpdate() {
  const updateManager = uni.getUpdateManager();
  updateManager.onCheckForUpdate((res) => {
    // 请求完新版本信息的回调
    console.log(res.hasUpdate);
  });
  updateManager.onUpdateReady(() => {
    uni.showModal({
      title: '更新提示',
      content: '检测到新版本，是否下载新版本并重启小程序？',
      success(res) {
        if (res.confirm) {
          // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
          updateManager.applyUpdate();
        }
      },
    });
  });
  updateManager.onUpdateFailed(() => {
    // 新的版本下载失败
    uni.showModal({
      title: '已经有新版本了哟~',
      content: '新版本已经上线啦~，请您删除当前小程序，重新搜索打开哟~',
      showCancel: false,
    });
  });
}

export function getTime(time: any) {
  const arr = [];
  // 转换为式分秒
  let h: any = Number.parseInt(time / 60 / 60 % 24);
  if (h > 0) {
    h = h < 10 ? `0${h}` : h;
    arr.push(h);
  }
  let m: any = Number.parseInt(time / 60 % 60);
  if (m > 0) {
    m = m < 10 ? `0${m}` : m;
    arr.push(m);
  }
  let s: any = Number.parseInt(time % 60);
  if (s > 0) {
    s = s < 10 ? `0${s}` : s;
    arr.push(s);
  }
  // 作为返回值返回
  return `${h}时${m}分${s}秒`;
}

/**
 *  检测输入的内容是否为空
 * @param {Object} input:传送进来的文本框里输入的字符串，如果没有输入内容，则返回：true
 */
export function isEmpty(data) {
  try {
    if (data === null || data === undefined) {
      return true;
    } else if (typeof data === "string" && data.trim().length === 0) {
      return true;
    } else if (typeof data === "object" && Object.keys(data).length === 0) {
      return true;
    } else if (Array.isArray(data) && data.length === 0) {
      return true;
    } else {
      return false;
    }
  } catch (err) {
    console.log("err", err);
  }
}


export const pages = {
  /* 从什么页面过来的就跳回什么页面去:
    num: Number,跳转到前num个页面,默认值为0,传1就是跳转到前一个页面,传2就是跳转到前2个页面,0是当前页面。当没有前一个页面时,则默认跳到首页
    excludePage:Array,排除某个页面(当检测到该页面包含该符时的页面时,直接跳到首页),如：pages.goBeforePage(1,['/login','thirdLoginResult']),
    备注：如果传的excludePage数组第一个元素是传['login']，则会触发条件，排除configfix.excludeLoginURIs这些页面，如：pages.goBeforePage(1,['login'])
  */
  goBeforePage(num) {
    const pages = getCurrentPages(); // 当前页面
    const pagesNumber = num ? Number(num) : 0;
    const beforePage = pages[pages.length - pagesNumber - 1]; // 前num个页面
    if (!beforePage) {
      // 跳转首页
      uni.switchTab({
        url: "/pages/index/index",
      });
    } else {
      // 从什么页面过来的就跳回什么页面去
      if (pagesNumber == 1) {
        uni.navigateBack();
      } else {
        uni.navigateBack({
          delta: pagesNumber,
        });
        // 注意,如果返回带参数的页面,不能用该方法,因为该方法并不能带上参数的
        // uni.reLaunch({url: '/' + beforePage.route})
      }
    }
  },
  /* 拿当前页面的路由地址(注意:不包括参数)
    num: Number,拿前N个页面的路由地址,默认值为0,传1拿前一个页面的路由地址
  */
  getPageRoute(num) {
    const pagesNumber = num ? Number(num) : 0;
    const pages = getCurrentPages(); // 当前页面
    const beforePage = pages[pages.length - pagesNumber - 1]; // 前num个页面,0是当前页面
    return beforePage ? beforePage.route : false;
  },
};

export function pxToRpx(px:any) {
  const pxNum = uni.$u.getPx(px);
  console.log("修改px转rpx");
  const windowInfo = wx.getWindowInfo();
  const screenWidth = windowInfo.screenWidth;
  return (750 * Number.parseInt(pxNum)) / screenWidth;
}